table of contents
diff(1) | 2007-10-27-16:31 | diff(1) |
НАЗВА ¶
diff - знайти відмінності між двома файлами
ЗВІД ¶
diff [опції] файл-з файл-до
ОПИС ¶
У найпростішому випадку, diff порівнює вміст двох файлів: файл-з та файл-до . Ім'я файлу - (дефіс) означає текст, прочитаний зі звичного вводу. У особливому разі, diff - - порівнює копію звичного вводу з ним же. Якщо файл-з є текою, а файл-до ні, diff бере для порівняння файл у теці файл-з з назвою файл-до , і навпаки. Файл, що не є текою не повинен бути - . Якщо і файл-з , і файл-до є теками, diff порівнює відповідні файли в обох теках, у алфавітному порядку; це порівняння не рекурсивне, поки не вказано опцію -r чи --recursive . diff ніколи не порівнює дійсний вміст теки, так ніби вона є файлом. Явно описаний файл не може бути звичним вводом, тому що звичний ввід безіменний, і поняття "файл з тим же ім'ям" не застосовне. Ключі diff починаються з - , тож звично назви файл-з та файл-до не можуть починатись з - . проте, арґумент -- вказує вважати решту арґументів назвами файлів, навіть якщо вони починаються з - .
Опції ¶
Далі йде звід усіх опцій, що приймає GNU diff . Більшість опцій мають дві тотожні назви, одна з них є одною буквою, якій передує - , інша є довгою назвою, якій передує -- . Кілька однобуквених оцій (якщо вони без арґументів) можна зчепити в одне слово командного рядка: -ac тотожне до -a -c . Довгі назви можна скоротити до будь-якого унікального префіксу їх назви. Дужки ( [ та ] ) вказують, що опція бере необов'язковий арґумент.
- кількість_рядків¶
Показати кількість_рядків (ціле число) рядків контексту. Ця опція сама не вказує формат виводу; Вона не діє без -c чи -u . Ця опція застаріла. Для вірної дії patch звично потрібно хоча б два рядки контексту.
-a¶
Вважати всі файли текстовими й обробляти їх рядок за рядком, навіть якщо вони не схожі на текстові.
-b¶
Іґнорувати зміни в кількості пробілів.
-B¶
Іґнорувати зміни, що лише вставляють чи додають пусті рядки.
--brief¶
Повідомити лише чи відрізняються файли, а не подробиці відмінностей.
-c¶
Вживати контекстний формат виводу.
-C кількість_рядків¶
"--context[=" кількість_рядків "]"
Вживати контекстний формат виводу, показуючи кількість_рядків (ціле число) рядків контексту, або три, якщо кількість_рядків не вказано. Для вірної дії, patch звичайно потребує хоча б два рядки контексту.
--changed-group-format= формат¶
Вживати формат для виводу групи рядків, що містять відмінні рядки обох файлів у форматі if-then-else (якщо-то-інакше).
-d¶
Змінити алґоритм для можливого знаходження меншого набору змін. Це сповільнює diff (іноді значно).
-D назва¶
Робити об'єднаний вивід у форматі if-then-else (якщо-то-інакше), беручи умовою макрос назва допроцесора.
-e¶
"--ed"
Зробити вивід, що є робочим скриптом для ed.
--exclude= зразок¶
При порівнянні тек, пропускати файли та підтеки, базова назва яких відповідає зразку .
--exclude-from= файл¶
При порівнянні тек, пропускати файли та підтеки, базова назва яких відповідає будь-якому зразку з файлу .
--expand-tabs¶
Розгортати табуляцію у пробіли на виводі, для збереження вирівнювання відступів у вхідних файлах.
-f¶
Зробити вивід, що схожий на скрипт ed , але має зміни у порядку, в якому вони з'являються у файлі.
-F реґулярний_вираз¶
В контекстному та об'єднаному форматі, для кожного набору відмінностей, показати кілька попередніх рядків, що відповідають арґументу реґулярний_вираз .
--forward-ed¶
Зробити вивід, що схожий на скрипт ed , але має зміни у порядку, в якому вони з'являються у файлі.
-h¶
Ця опція тепер не має жодного впливу; вона присутня для сумісності з Unix.
-H¶
Вживати евристику для прискорення обробки великих файлів з багатьма розсіяними малими відмінностями.
--horizon-lines= кількість_рядків¶
Не викидати останні кількість_рядків рядків спільного префіксу і перші кількість_рядків рядків спільного суфіксу.
-i¶
Іґнорувати зміни реґістру; Вважати великі та малі букви тотожними.
-I реґулярний_вираз¶
Іґнорувати зміни, що лише додають чи видаляють рядки, узгоджені з арґументом реґулярний_вираз .
--ifdef= назва¶
Робити об'єднаний вивід у форматі if-then-else (якщо-то-інакше), беручи умовою макрос назва допроцесора.
--ignore-all-space¶
Іґнорувати пропуски при порівнянні рядків.
--ignore-blank-lines¶
Іґнорувати зміни, що лише вставляють чи додають пусті рядки.
--ignore-case¶
Іґнорувати зміни реґістру; Вважати великі та малі букви тотожними.
--ignore-matching-lines= реґулярний_вираз¶
Іґнорувати зміни, що лиш додають чи видаляють рядки узгоджені з арґументом реґулярний_вираз .
--ignore-space-change¶
Іґнорувати зміни в кількості пробілів. .
--initial-tab¶
Виводити табуляцію замість пробілу перед текстом у рядку в нормальному та контекстному форматах. Таким чином, вирівнювання табуляцій у рядку виглядає нормально.
-l¶
Пропустити вивід через pr для розділу на сторінки.
-L мітка¶
"--label=" мітка
Вживати мітку замість назви файлу у заголовках контекстного та та об'єднаного формату.
--left-column¶
Друк лише лівого стовпця з двох спільних рядків при форматі в дві колонки.
--line-format=¶
Вживати формат для виводу всіх вхідних рядків у форматі if-then-else (якщо-то-інакше).
--minimal¶
Змінити алґоритм для можливого знаходження меншого набору змін. Це сповільнює diff (іноді значно).
-n¶
Вивід відмінностей у RCS форматі; Подібне до -f крім того, що кожна команда вказує кількість змінених рядків.
-N¶
"--new-file"
При порівнянні тек, якщо файл знайдено в лише в одній з них, уважати, що він існує, але пустий, у іншій теці.
--new-group-format= формат¶
Вживати формат для виводу груп рядків лише з другого файлу у форматі if-then-else (якщо-то-інакше).
--new-line-format= формат¶
Вживати формат для виводу рядка лише з другого файлу у форматі if-then-else (якщо-то-інакше).
--old-group-format= формат¶
Вживати формат для виводу груп рядків лише з першого файлу у форматі if-then-else (якщо-то-інакше).
--old-line-format= формат¶
Вживати формат для виводу рядка лише з першого файлу у форматі if-then-else (якщо-то-інакше).
-p¶
Показати, якій функції мови C належить кожна зміна.
-P¶
При порівнянні тек, якщо файл існує лише у другій з двох тек, уважати, що він існує, але пустий у першій.
--paginate¶
Пропустити вивід через pr для розбиття на сторінки.
-q¶
Лише повідомити чи файли різні, а не подробиці відмінностей.
-r¶
При порівнянні тек, рекурсивно порівнювати будь-які виявлені підтеки.
--rcs¶
Вивести відмінності у RCS-форматі; Подібне до -f , але кожна команда вказує кількість змінених рядків.
--recursive¶
При порівнянні тек, рекурсивно порівнювати будь-які виявлені підтеки.
--report-identical-files¶
"-s"
Повідомити, коли два файли однакові.
-S файл¶
При порівнянні тек, почати з файлу файл . Це вживається для продовження перерваного порівняння.
--from-file= файл¶
Порівнювати файл з усіма операндами. файл може бути текою.
--to-file= файл¶
Порівняти всі операнди з файлом . файл може бути текою.
--sdiff-merge-assist¶
Вивід додаткової інформації, необхідної sdiff . sdiff вживає цю опцію, коли запускає diff . Ця опція не призначена для прямого використання користувачем.
--show-c-function¶
Показати, якій функції мови C належить кожна зміна.
--show-function-line= реґулярний_вираз¶
У контекстному та об'єднаному форматах, для кожного блоку відмінностей, показати останній попередній рядок, відповідний до арґументу реґулярний_вираз .
--side-by-side¶
Вживати формат виводу в два стовпці.
--speed-large-files¶
Вживати евристику для прискорення обробки великих файлів з багатьма розсіяними малими відмінностями.
--starting-file= file¶
При порівнянні тек, почати з файлу файл . Це вживається для продовження перерваного порівняння.
--suppress-common-lines¶
Не виводити однакові рядки при двостовпцевому виводі.
-t¶
Розгортати табуляцію у пробіли на виводі, для збереження вирівнювання відступів у вхідних файлах.
-T¶
Виводити табуляцію замість пробілу перед текстом у рядку в нормальному та контекстному форматах. Таким чином, вирівнювання табуляцій у рядку виглядає нормально.
--text¶
Вважати всі файли текстовими й обробляти їх рядок за рядком, навіть якщо вони не схожі на текстові.
-u¶
Вживати об'єднаний формат виводу.
--unchanged-group-format= формат¶
Вживати формат для виводу групи спільних рядків узятих з обох файлів у форматі if-then-else (якщо-то-інакше).
--unchanged-line-format= формат¶
Вживати формат для виводу рядків спільних для обох файлів у форматі if-then-else (якщо-то-інакше).
--unidirectional-new-file¶
При порівнянні тек, якщо файл існує лише у другій з двох тек, уважати, що він існує, але пустий у іншій.
-U кількість_рядків¶
"--unified[=" кількість_рядків "]"
Вживати об'єднаний формат виводу, показуючи дану кількість_рядків рядків, або три, якщо кількість_рядків не дано. Для нормальної роботи patch звично треба хоча б два рядки контексту.
-v¶
"--version"
Вивести номер версії diff .
-w¶
Не враховувати пробіли при порівнянні рядків.
-W кількість_стовпців¶
"--width=" кількість_стовпців
Встановити ширину виводу в кількість_стовпців у двостовпцевому форматі.
-x зразок¶
При порівнянні тек, пропускати файли та підтеки, основа назви яких відповідає зразку .
-X файл¶
При порівнянні тек, пропускати файли та підтеки, основа назви яких відповідає будь-якому зразку, що міститься в файлі .
-y¶
Вживати двостовпцевий формат виводу.
ДИВІТЬСЯ ТАКОЖ ¶
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).
ДІАГНОСТИКА ¶
Стан завершення 0 означає відмінностей не знайдено, 1 означає знайдено деякі відмінності, 2 означає помилку.
2007-10-27-16:31 | © 2005-2007 DLOU, GNU FDL |